/*
 * LocalClient.hpp
 *
 *  Created on: Nov 21, 2014
 *      Author: toti
 */

#ifndef LOCALCLIENT_HPP_
#define LOCALCLIENT_HPP_

#include <list>
#include <string>
#include <sstream>

#include <Connectivity/TCPConnection.hpp>
#include <Network/MessagePackages/MessagePackage.hpp>
#include <Network/MessagePackages/ClientMessagePackage.hpp>
#include <Network/MessagePackages/ServerMessagePackage.hpp>
#include <Network/LocalNode.hpp>

class NetworkClient;

class LocalClient : public LocalNode{

enum LocalClientState{
	UNREGISTERED,
	REGISTERED
};

private:

	LocalClientState localClientState;

	NetworkClient *networkClient;

public:

	LocalClient(TCPConnection *tcpConnection);

	MessagePackage *buildPackage(std::string& input);


	void setNetworkClient(NetworkClient *networkClient);
	NetworkClient *getNetworkClient();
};


#endif /* LOCALCLIENT_HPP_ */
